package org.rayken.trix.commons.card;

public enum Card {

    SEVEN_CLUBS(Rank.SEVEN, Suit.CLUBS),
    EIGHT_CLUBS(Rank.EIGHT, Suit.CLUBS),
    NINE_CLUBS(Rank.NINE, Suit.CLUBS),
    TEN_CLUBS(Rank.TEN, Suit.CLUBS),
    JACK_CLUBS(Rank.JACK, Suit.CLUBS),
    QUEEN_CLUBS(Rank.QUEEN, Suit.CLUBS),
    KING_CLUBS(Rank.KING, Suit.CLUBS),
    ACE_CLUBS(Rank.ACE, Suit.CLUBS),

    SEVEN_DIAMONDS(Rank.SEVEN, Suit.DIAMONDS),
    EIGHT_DIAMONDS(Rank.EIGHT, Suit.DIAMONDS),
    NINE_DIAMONDS(Rank.NINE, Suit.DIAMONDS),
    TEN_DIAMONDS(Rank.TEN, Suit.DIAMONDS),
    JACK_DIAMONDS(Rank.JACK, Suit.DIAMONDS),
    QUEEN_DIAMONDS(Rank.QUEEN, Suit.DIAMONDS),
    KING_DIAMONDS(Rank.KING, Suit.DIAMONDS),
    ACE_DIAMONDS(Rank.ACE, Suit.DIAMONDS),

    SEVEN_HEARTS(Rank.SEVEN, Suit.HEARTS),
    EIGHT_HEARTS(Rank.EIGHT, Suit.HEARTS),
    NINE_HEARTS(Rank.NINE, Suit.HEARTS),
    TEN_HEARTS(Rank.TEN, Suit.HEARTS),
    JACK_HEARTS(Rank.JACK, Suit.HEARTS),
    QUEEN_HEARTS(Rank.QUEEN, Suit.HEARTS),
    KING_HEARTS(Rank.KING, Suit.HEARTS),
    ACE_HEARTS(Rank.ACE, Suit.HEARTS),

    SEVEN_SPADES(Rank.SEVEN, Suit.SPADES),
    EIGHT_SPADES(Rank.EIGHT, Suit.SPADES),
    NINE_SPADES(Rank.NINE, Suit.SPADES),
    TEN_SPADES(Rank.TEN, Suit.SPADES),
    JACK_SPADES(Rank.JACK, Suit.SPADES),
    QUEEN_SPADES(Rank.QUEEN, Suit.SPADES),
    KING_SPADES(Rank.KING, Suit.SPADES),
    ACE_SPADES(Rank.ACE, Suit.SPADES);

    private Rank rank;
    private Suit suit;

    private Card(Rank rank, Suit suit) {
		this.rank = rank;
		this.suit = suit;
    }

    public Rank getRank() {
		return rank;
	}

	public Suit getSuit() {
		return suit;
	}
	
	public String getLongName(){
		return rank.getLongName() + " of " + suit.getLongName();
	}

	@Override
    public String toString() {
    	return rank.toString() + suit.toString();
		//return "[" + rank.toString() + suit.toString() + " " + getLongName() + "]";
    }
}
